//Kéki
package digitrencer;

/**
 * A kimeneteket (pl LED) egybefoglaló osztály.
 * @author Kéki
 */
public abstract class Output extends Element {

    /**
     * A kimenet jelenlegi értéke.
     */
    protected boolean value;

    Output(int id, Wire[] inputs, Wire[] outputs) {
        super(id, inputs, outputs);
        value = false;
    }

    /**
     * A bemenetén lévő vezeték alapján beállítja a kimenet értékét.
     */
    @Override
    public void run() {
        System.out.println("CALL | #" + id + ":Output | public void run()");
        value = in[0].getEnd();
    }

    /**
     * Lekérdezi a kimenet jelenlegi értékét.
     * @return A kimenet értéke.
     */
    public boolean getValue() {
        System.out.println("CALL | #" + id + ":Output | public boolean getValue()");
        System.out.println("RETURN | #" + id + ":Output | boolean val = " + value);
        return value;
    }
}
